-- 首先尝试使用setnx设置值
local result = redis.call('setnx', KEYS[1], ARGV[2]);
-- 如果成功，则设置key的失效时间
if result == 1 then
    redis.call('pexpire', KEYS[1], tonumber(ARGV[1]));
    -- 设置成功的话就返回空值，与后面返回的失效时间区别开
    return nil
else
    -- key操作失败，说明有其它节点正在操作，直接返回key的失效时间
    return redis.call('pttl', KEYS[1])
end
